package top.drose.service;

//规则
//每个题有5个选项，最多对4个，最少对2个
//
//正确选项4个，则一个0.5分
//正确选项3个，对1个0.5分，对2个给1分，3个给2分
//正确选项2个，则一个1分
//如果多选了，就是错了，就把错的那个标红
//如果少选了，就将选项标绿，让用户去比对哪个少了。
public class CalculateMethod_1 implements CalculateMethod {
    @Override
    public double calculateMultiScore(String correct, String resp) {
        //找错误的
        for(int i=0;i<resp.length();i++){
            if(correct.indexOf(resp.charAt(i))==-1){//没有找到，说明多选了，标记错误
                return 0.0;
            }
        }
        //下面的说明都可以找得到了
        int correctCnt=correct.length();//正确选项的个数
        if(correctCnt==4){
            return resp.length()*0.5;
        }else if(correctCnt==3){
            if(resp.length()==1){
                return 0.5;
            }else if(resp.length()==2){
                return 1.0;
            }else{
                return 2.0;
            }
        }else if(correctCnt==2){//正确选项为两个
            if(resp.length()==1){
                return 1.0;
            }
            return resp.length()*1.0;
        }else{
            return 0.0;
        }
    }
}
